﻿<%@ Application Language="C#" %>
<%@ Import Namespace="Com.Toook.Common" %>
<%@ Import Namespace="Com.Toook.UpdateRssNews" %>
<%@ Import Namespace="System.Timers" %>
<%@ Import Namespace="System.Web" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        //配置日志记录
        string fileO = HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\log4net.xml";
        string file = System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "App_Data\\log4net.xml";
        System.IO.FileInfo info = new System.IO.FileInfo(file);
        log4net.Config.XmlConfigurator.ConfigureAndWatch(info);
        
        //设置定时器
        /*
        System.Timers.Timer myTimer = new System.Timers.Timer(1 * 60 * 1000);//每n分钟(n * 60 * 1000)更新一次，Timer的单位是毫秒。
        myTimer.Elapsed += new ElapsedEventHandler(UpdateRss);
        myTimer.AutoReset = true;
        myTimer.Enabled = true;
*/
        //System.Timers.Timer contentTimer = new System.Timers.Timer(1 * 60 * 1000);//每n分钟(n * 60 * 1000)更新一次，Timer的单位是毫秒。
        //contentTimer.Elapsed += new ElapsedEventHandler(UpdateNewsContent);
        //contentTimer.AutoReset = true;
        //contentTimer.Enabled = true;
    }
    /// <summary>
    /// 自动更新RSS新闻
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void UpdateRss(object sender, ElapsedEventArgs e)
    {
        UpdateRssNewsAccess update = new UpdateRssNewsAccess();
        update.UpdateAllSiteNews();

        //CreateHtml html = new CreateHtml();
        //html.CreateHtmlAuto();
    }
    //void UpdateNewsContent(object sender, ElapsedEventArgs e)
    //{
    //    CreateMyNewsHtml myNews = new CreateMyNewsHtml();
    //    myNews.CreateNewsContentAuto();

    //    DateTime delTime;
    //    int days = int.Parse(ConfigurationManager.AppSettings["DeleteNewsDays"]);
    //    if(Application["LastDeleteTime"] != null)
    //    {
    //        delTime = (DateTime)Application["LastDeleteTime"];
    //        if(delTime.AddHours(6) < DateTime.Now)//每6小时删除一次
    //        {
    //            myNews.DeleteNews(DateTime.Now.AddDays(-days).ToString("yyyy-MM-dd HH:mm:ss"));//保留几天的新闻，配置文件控制
    //        }
    //    }
    //    else
    //    {
    //        Application["LastDeleteTime"] = delTime = DateTime.Now;
    //        myNews.DeleteNews(DateTime.Now.AddDays(-days).ToString("yyyy-MM-dd HH:mm:ss"));
    //    }
    //}
    void Application_End(object sender, EventArgs e) 
    {
        //在应用程序关闭时运行的代码

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        //在出现未处理的错误时运行的代码
        Exception ex = Server.GetLastError();
        if(ex is HttpException)//403,404等异常不处理
        {
            HttpException httpEx = (HttpException)ex;
            int httpCode = httpEx.GetHttpCode();
            LogHelper.Log.Warn("网站HttpException. HttpCode=" + httpCode.ToString(), httpEx);
            //不能Server.ClearError();否则不会重定向到错误页面
        }
        else
        {
            LogHelper.Log.Error("网站App Error. ", ex);
            Server.ClearError();
        }
    }

    void Session_Start(object sender, EventArgs e) 
    {
        //在新会话启动时运行的代码

    }

    void Session_End(object sender, EventArgs e) 
    {
        //在会话结束时运行的代码。 
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时，才会引发 Session_End 事件。如果会话模式 
        //设置为 StateServer 或 SQLServer，则不会引发该事件。

    }
       
</script>
